home *** CD-ROM | disk | FTP | other *** search
/ Aminet 40 / Aminet 40 (2000)(Schatztruhe)[!][Dec 2000].iso / Aminet / dev / gui / MultiDesktop.lha / MultiDesktop / test.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-27  |  9.4 KB  |  387 lines

  1. #include "multiwindows.h"
  2. #define D(x) printf("DEBUG %ld\n",x);
  3.  
  4. BOOL        InitWindow();
  5. void        InitItems();
  6. void        GfxTest();
  7. extern BOOL CreateWindow();
  8. void        Term();
  9. void        Iconify(),UnIconify();
  10.  
  11. struct MultiWindowsBase  mwb;
  12. struct Library          *VersionBase;
  13. extern struct ExecBase  *SysBase;
  14. extern struct WBStartup *WBenchMsg;
  15. struct IntuitionBase    *IntuitionBase;
  16. struct GfxBase          *GfxBase;
  17. struct LayersBase       *LayersBase;
  18. struct MultiWindowsBase *MultiWindowsBase;
  19. struct ExpansionBase    *ExpansionBase;
  20. extern APTR              IconBase;
  21. APTR                     KeymapBase,UtilityBase,MultiSystemBase;
  22. APTR                     WorkbenchBase,GadToolsBase,MultiDesktopBase,
  23.                          DiskfontBase,LocaleBase;
  24.  
  25. struct TextAttr newFont=
  26. {
  27.  "helvetica.font",15,FS_NORMAL,FPF_DISKFONT
  28. };
  29.  
  30. void OpenAll()
  31. {
  32.  VersionBase=OpenLibrary("version.library",0L);
  33.  IntuitionBase=OpenLibrary("intuition.library",0L);
  34.  GfxBase=OpenLibrary("graphics.library",0L);
  35.  LayersBase=OpenLibrary("layers.library",0L);
  36.  MultiDesktopBase=OpenLibrary("multidesktop.library",0L);
  37.  DiskfontBase=OpenLibrary("diskfont.library",0L);
  38.  IconBase=OpenLibrary("icon.library",0L);
  39.  WorkbenchBase=OpenLibrary("workbench.library",0L);
  40.  GadToolsBase=OpenLibrary("gadtools.library",0L);
  41.  LocaleBase=OpenLibrary("locale.library",0L);
  42.  KeymapBase=OpenLibrary("keymap.library",0L);
  43.  UtilityBase=OpenLibrary("utility.library",0L);
  44.  ExpansionBase=OpenLibrary("expansion.library",0L);
  45.  if(UtilityBase==NULL) exit(0);
  46.  if(ExpansionBase==NULL) exit(0);
  47.  if((IntuitionBase==NULL)||(GfxBase==NULL)||(LayersBase==NULL)) exit(0);
  48.  if((MultiDesktopBase==NULL)||(GadToolsBase==NULL)||(WorkbenchBase==NULL)||(IconBase==NULL)) exit(0);
  49.  if((DiskfontBase==NULL)||(LocaleBase==NULL)||(KeymapBase==NULL)) exit(0);
  50.  MultiSystemBase=OpenLibrary("multisystem.library",0L);
  51.  if(MultiSystemBase==NULL)
  52.   {
  53.    puts("No multisystem.library!");
  54.    exit(0);
  55.   }
  56. }
  57.  
  58. void CloseAll()
  59. {
  60.  CloseLibrary(ExpansionBase);
  61.  CloseLibrary(UtilityBase);
  62.  CloseLibrary(IntuitionBase);
  63.  CloseLibrary(GfxBase);
  64.  CloseLibrary(LayersBase);
  65.  CloseLibrary(DiskfontBase);
  66.  CloseLibrary(IconBase);
  67.  CloseLibrary(WorkbenchBase);
  68.  CloseLibrary(GadToolsBase);
  69.  RemLibrary(LocaleBase);
  70.  CloseLibrary(LocaleBase);
  71.  CloseLibrary(KeymapBase);
  72.  RemLibrary(MultiDesktopBase);
  73.  CloseLibrary(MultiDesktopBase);
  74.  RemLibrary(MultiSystemBase);
  75.  CloseLibrary(MultiSystemBase);
  76. }
  77.  
  78. /* ------------------------------------------------------ */
  79.  
  80. BOOL bool,ende,b2;
  81. long i,j,k;
  82.  
  83. struct MultiMessage *msg;
  84. struct WindowEntry  *we;
  85.  
  86. void main()
  87. {
  88.  int zz,x,y;
  89.  struct MultiWindowsUser *mw;
  90.  
  91.  OpenAll();
  92.  MultiWindowsBase=&mwb;
  93.  InitLib();
  94.  DesktopStartup(WBenchMsg,STARTUP_TRAPHANDLER|STARTUP_BREAKHANDLER_C|STARTUP_BREAKHANDLER_F|STARTUP_ALERTHANDLER|STARTUP_BREAKHANDLER_ON);
  95.  InitWindowsUser(NULL);
  96.  USER;
  97.                                    /* -OldFont- */     /*nonprop*/
  98.  AppInfo("Application",15000,"test.cat", 708,15, &newFont,  NULL,  "m:test",NULL,NULL);
  99.  SetTermProcedure(Term);
  100.  
  101. /*
  102.  bool=CreateScreen(2,"2:Screen",640,440,3,NTSC_MONITOR_ID|HIRESLACE_KEY,CUSTOMSCREEN,0L,NULL);
  103.  SetScreenWallpaper(2,"Stone7.wallpaper");
  104. */
  105.  zz=0;
  106. /*
  107.  bool=InitWindow(10,50,50,zz);
  108.  we=FindWindowEntry(10);
  109. */
  110.  
  111. bool=OpenInformationBox(0,0,0);
  112. Wallpaper("LightGrey1.wallpaper");
  113.  
  114.  
  115. /*
  116.  bool=InitWindow(20,25,25,zz);
  117.  Wallpaper("LightGrey1.wallpaper");
  118.  bool=InitWindow(30,50,50,zz);
  119. */
  120.  if(bool)
  121.   {
  122.    ende=FALSE;
  123.    while(ende==FALSE)
  124.     {
  125.      msg=GetMultiMessage(WindowID_InformationBox,TRUE);
  126.      if(msg!=NULL)
  127.       {
  128.        if(msg->WindowID!=0) ActWindow(msg->WindowID);
  129.        HandleInformationBox(msg);
  130.  
  131.        if(msg->Class==MULTI_CLOSEWINDOW)
  132.          ende=TRUE;
  133.        else if(msg->Class==MULTI_VANILLAKEY)
  134.         {
  135.          if(msg->ObjectID==(ULONG)'5') OpenGuide();
  136.          if(msg->ObjectID==(ULONG)'6') CloseGuide();
  137.          if(msg->ObjectID==(ULONG)'7') { puts("Show..."); ShowGuide(); }
  138.          if(msg->ObjectID==(ULONG)'q')
  139.           {
  140.            IconifyWindow(10,IF_APPICON);
  141.            Delay(50);
  142.            b2=UnIconifyWindow(10);
  143.            if(b2==FALSE) ende=TRUE;
  144.           }
  145.          if(msg->ObjectID==(ULONG)'w')
  146.           {
  147.            IconifyScreen(2,IF_APPICON|IF_APPMENU);
  148.            Delay(50);
  149.            b2=UnIconifyScreen(2);
  150.            if(b2==FALSE) ende=TRUE;
  151.           }
  152.          if(msg->ObjectID==(ULONG)'y')
  153.           {
  154.            Iconify();
  155.            Delay(120);
  156.            UnIconify();
  157.           }
  158.          if(msg->ObjectID==(ULONG)'b') StdPointer(STDP_WORK);
  159.          if(msg->ObjectID==(ULONG)'n') StdPointer(STDP_SLEEP);
  160.          if(msg->ObjectID==(ULONG)'m') StdPointer(STDP_HELP);
  161.          if(msg->ObjectID==(ULONG)'v') StdPointer(STDP_DEFAULT);
  162.        }
  163.       }
  164.     }
  165.    CloseInformationBox();
  166.   }
  167.  
  168.  TerminateWindowsUser(NULL);
  169.  DesktopExit();
  170.  RemoveLib();
  171.  CloseAll();
  172.  
  173.  printf("Avail=%ld\n",AvailMem(MEMF_PUBLIC));
  174. }
  175.  
  176. void Term()
  177. {
  178.  TerminateWindowsUser(NULL);
  179.  DesktopExit();
  180.  RemoveLib();
  181.  CloseAll();
  182.  printf("Avail=%ld\n",AvailMem(MEMF_PUBLIC));
  183.  exit(0);
  184. }
  185.  
  186. BOOL InitWindow(id,w,h,scrID)
  187.  int id,w,h,scrID;
  188. {
  189.  BOOL bool;
  190.  
  191.  bool=CreateWindow(id,"1:Window",w,h,450,210,CW_CLOSE|CW_DEPTH|CW_SIZE|CW_DRAG,scrID,NULL);
  192.  if(bool==FALSE) return(FALSE);
  193.  
  194.  GfxTest();
  195.  
  196. /*
  197.  Wallpaper("Sand1.wallpaper");
  198.  
  199.  AddHSlider(  1,"10",  20,  20,150, 20, "Slider", CGA_RIGHT, 7500,0,20000);
  200.  MakeAction(2,AGC_SLIDER,AGC_NUMBER);
  201.  MakeAction(3,AGC_SLIDER,AGC_STATUS);
  202.  MakeAction(4,AGC_SLIDER,AGC_HEX);
  203.  AddNumber(   2,"11",  20,  50,150, 20, "Number", CGA_RIGHT, "This is number %lD",4711,JSF_CENTER);
  204.  AddStatus(   3,"12",  20,  80,150, 20, "Status", CGA_RIGHT, "%ld files",7500,0,20000);
  205.  AddHex(      4,"13",  20, 110,150, 20, "Hex", CGA_RIGHT|CIN_CENTER,0x7466,0,0xffff);
  206.  AddString(   5,"14",  20, 140,150, 20, "String", CST_PASSWORD|CGA_RIGHT|CST_CENTER,"",256);
  207.  MakeAction(6,AGC_STRING,AGC_TEXT);
  208.  AddText(     6,"10",  20, 170,150, 20, "Text", CGA_RIGHT, "Text-Gadget!",JSF_CENTER);
  209. */
  210. /*
  211.  AddIcon( 6,"10",60, 60,80,40, "Test 1", CGA_BELOW,"M:Test");
  212.  AddImage(8,"10",160, 60,80,40, "Test 2",CGA_BELOW,LEFTIMAGE);
  213. */
  214.  
  215. /*
  216.  AddWheel(     6,"10",  50, 50,100,100, "6", CGA_ABOVE, 200,0,500);
  217.  MakeAction(2,AGC_WHEEL,AGC_NUMBER);
  218.  AddNumber(    2,"11",  50,160,100, 20, "2", CGA_RIGHT, "%ld",200,JSF_CENTER);
  219.  
  220.  AddSelectBox(     6,"10",  50, 50,150,20, "6:_SelectBox", CGA_DEFAULT, &array, 3);
  221. */
  222. /*
  223.  AddMenu( 1,"300:Menu 1", "300:Menu 1", CME_DEFAULT);  InitItems();
  224.  AddMenu(99,"301:Menu 2", "301:Menu 2", CME_DEFAULT);  InitItems();
  225. */
  226.  AddStdMenus();
  227.  ShowMenu();
  228.  return(TRUE);
  229. }
  230.  
  231. void InitItems()
  232. {
  233.  AddItem( 1,"100:New item",  "200:New...",  0, "Shift-N", 0);
  234.   MakeItemAction(3,IAF_DISABLE);
  235.  AddBarItem(1000);
  236.  AddItem( 2,"101:Load item", "201:Load...",  0, "Alt-Ctrl-L", 0);
  237.   MakeItemAction(3,IAF_ENABLE);
  238.  AddItem( 3,"102:Save item", "202:Save...",  0, 0,  0);
  239.  AddSubItem(10, "109:ASCII-Item", "209:ASCII", 0, "Shift-F3",0);
  240.  AddSubBarItem(11);
  241.  AddSubCheckItem(12, "110:Text item",   "210:Text",    0, "Shift-F4",0,TRUE);
  242.   MakeItemAction(13,IAF_UNCHECK);
  243.   MakeItemAction(14,IAF_UNCHECK);
  244.  AddSubCheckItem(13, "111:Picture item","211:Picture", 0, "F7",0,FALSE);
  245.   MakeItemAction(12,IAF_UNCHECK);
  246.   MakeItemAction(14,IAF_UNCHECK);
  247.  AddSubCheckItem(14, "112:Special item","212:Special", 0, "Alt-F9",0,FALSE);
  248.   MakeItemAction(12,IAF_CHECK);
  249.   MakeItemAction(13,IAF_CHECK);
  250.  AddBarItem(2000);
  251.  AddItem( 4,"103:Save-as item",     "203:Save as...",  0, "Shift-A",  0);
  252.  AddBarItem(3000);
  253.  AddItem( 5,"104:Information item", "204:Information",  0, "Shift-F10",    0);
  254.  AddBarItem(4000);
  255.  AddItem( 6,"105:Quit item",        "205:Quit","2051:Are you sure?", "Q", CMI_T2BOLD);
  256. }
  257.  
  258. #asm
  259.    public _GuruTest
  260. _GuruTest:
  261.    illegal
  262.    rts
  263.    public _GuruTest2
  264. _GuruTest2:
  265.    move.w sr,d0
  266.    rts
  267. #endasm
  268.  
  269. void Iconify()
  270. {
  271.  struct MultiWindowsUser *mw;
  272.  BOOL                     bool;
  273.  int                      i,j;
  274.  
  275.  USER;
  276.  j=0;
  277. /*
  278.  for(i=0;i<MAXWINDOWS;i++)
  279.   {
  280.    if(mw->WindowList[i]!=NULL)
  281.     {
  282.      if(j==0)
  283.        bool=IconifyWindow(i,IF_APPICON|IF_APPMENU);
  284.      else
  285.        bool=IconifyWindow(i,0);
  286.      j++;
  287.     }
  288.   }
  289. */
  290.  for(i=0;i<MAXSCREENS;i++)
  291.   {
  292.    if(mw->ScreenList[i]!=NULL)
  293.     {
  294.      if(j==0)
  295.        bool=IconifyScreen(i,IF_APPICON|IF_APPMENU);
  296.      else
  297.        bool=IconifyScreen(i,0);
  298.      j++;
  299.     }
  300.   }
  301. }
  302.  
  303. void UnIconify()
  304. {
  305.  struct MultiWindowsUser *mw;
  306.  BOOL                     bool;
  307.  int                      i,j;
  308.  
  309.  USER;
  310.  for(i=0;i<MAXSCREENS;i++)
  311.   {
  312.    if(mw->ScreenList[i]!=NULL)
  313.     {
  314.      bool=UnIconifyScreen(i);
  315.     }
  316.   }
  317. /*
  318.  for(i=0;i<MAXWINDOWS;i++)
  319.   {
  320.    if(mw->WindowList[i]!=NULL)
  321.     {
  322.      bool=UnIconifyWindow(i,IF_APPICON|IF_APPMENU);
  323.     }
  324.   }
  325. */
  326. }
  327.  
  328. void GfxTest()
  329. {
  330.  UBYTE r,g,b;
  331.  
  332.  CorrectionOn();
  333.  
  334.  SetFgPen(3);
  335.  SetStyle(ST_ITALIC|ST_OUTLINE|ST_SHADOW|ST_WIDE);
  336.  Plot(10,10);
  337.  
  338.  AInit();
  339.  
  340. /*
  341.  Rectangle(15,15,100,150);
  342.  Ellipse(75,75,40,40);
  343. */
  344. /*
  345.  SetOlPen(7);
  346.  
  347.  AEllipse(75,75,40,40);
  348.  AEnd();
  349.  
  350.  SetFgPen(6);
  351.  AMoveTo(75,75);
  352.  ADrawTo(150,150);
  353.  ADrawTo(10,120);
  354.  ADrawTo(30,20);
  355.  AEnd();
  356. */
  357. /*
  358.  SetFgPen(6);
  359.  Paint(75,75);
  360. */
  361.  SetFgPen(7);
  362.  SetBgPen(4);
  363.  
  364. /*
  365.  SetWindowFont("opal.font",9);
  366.  Print(20,10,"MultiWindows Test!");
  367.  SetWindowFont("times.font",18);
  368.  Print(20,22,"MultiWindows Test!");
  369.  SetWindowFont("sapphire.font",18);
  370.  Print(20,45,"MultiWindows Test!");
  371.  SetWindowFont("emerald.font",9);
  372.  Print(20,65,"MultiWindows Test!");
  373.  SetWindowFont("ruby.font",12);
  374.  Print(20,80,"MultiWindows Test!");
  375. */
  376.  
  377. /*
  378.  Circle(100,100,70);
  379.  SetPalette(7,255,250,100);
  380.  GetPalette(7,&r,&g,&b);
  381.  printf("%ld %ld %ld\n",r,g,b);  */
  382.  
  383. /* Wallpaper("Stone1.wallpaper"); */
  384.  
  385. }
  386.  
  387.